草庐IT

SQL INSERT INTO SELECT 语句

全部标签

mysql - 直接在MySQL语句中生成MD5 idHash

在我的表中,我有一个自动递增的用户ID。在同一行我有一个idHash。是否可以使用相同的INSERT语句直接从中生成idHash(简单的MD5和),这样我就不必选择id,然后再次更新idHash?问题是:在MySQL生成(自动递增)之前我不知道用户ID。谢谢弗兰克PS:我正在使用PHP。PPS:这个问题都是关于单次插入的。我知道我可以使用PHP或其他语言手动选择数据然后更新它。 最佳答案 我认为您无法在单个INSERT语句中完成此操作。您可能可以做的是使用INSERT触发器,它既确定新ID,对其进行哈希处理,又然后更新记录。

mysql - MySQL 有没有办法在单个语句 t 中更新和选择更新的行?

我可以加入SELECT和UPDATE语句吗?如果是,我该怎么做?我有一个名为news的表。我在我的网站上显示新闻。如果有人阅读新闻,我将1添加到hit。我用2个查询来做到这一点:mysql_query("SELECT*FROMnewsWHEREid=2LIMIT1");mysql_query("UPDATEnewsSEThit=hit+1WHEREid=2");但我想加入他们。id|title|content|hit---+-----------+-------------------+---1|sdfsdfdsf|dfsdffdsfds836173|52|sfsdfds|sdfsds

php - SQL 语句基于 $curr_time->format ('Y-m-d H:i' )

为什么这段代码...$curr_time=newDateTime();$query_inprocess="UPDATE`MyTable`SETinprocess=1WHEREstartTimeformat('Y-m-dH:i')."'";...导致错误的SQL查询,其中之后的语句被忽略了?UPDATE`MyTable`SETinprocess=1WHEREstartTime 最佳答案 找到下面的:"UPDATE`MyTable`SETinprocess=1WHEREstartTime它可以帮助您获得所需的准确结果。

mysql - 有没有办法识别那些在 where IN() 语句中找不到的记录?

来自PHP代码$Lines被定义为加入列表,例如123,146,165,1546,455,155plant表具有最高idPlant(唯一标识符)例如1000的顺序记录。我的简单SQL查询:SELECT*FROMplantWHERE`plant`.idPlantIN($Lines)orderbyplant.idPlant;这会返回“123,146,165”等的行数据。是否会被告知未找到“1546”?(因此用户可能输入了错字,我不能使用“确认所有数字都低于X”,因为在真实数据中idPlant可能不是连续的,上限会在使用过程中增加)。更新:希望获得能够告诉我未找到哪些数字的输出。

php - SQL 准备语句 (PHP)

我想了解SQL注入(inject)的工作原理,以及如何防止它。HTML登录页面包含一个表单,作为一个表格,带有用户名和密码字段,以及一个提交按钮。与mySQL数据库一起使用的PHP代码如下所示:$conn=mysqli_connect($Host,$User,$Password,$DbName);if(!$conn){echo"Databaseconnectionerror.";exit;}$query="SELECTuser_name,passwordfromvisitorswhereuser_name='".$_POST['user_name']."';";$result=mysq

python - 使用 mysql-python 执行 Select 语句给出 None

我正在使用python-2.7和mysql/mysql-python连接器的新手。我只想通过使用以下查询来检索数据-SELECTd_id,d_link,d_nameFROMd_details但它给出/返回None。以下是我的代码-defgetdbconnection(self):try:self.cnx=mysql.connector.connect(user='abc',password='xxx',host='localhost',port='xxx',database='details',buffered=True)print"Done"self.cursor=self.cnx.

Java Hibernate C3P0存储过程命名查询错误-语句关闭后不允许进行操作,无法释放JDBC连接

使用Java运行我的存储过程时遇到一些奇怪的问题,Hibernate,C3P0,namedquery,MySQL.存储过程DELIMITER$$USE`testdb`;CREATEPROCEDURE`GetWebUserData`(INrequestIdINT)BEGINDECLAREkeyIdLONGDEFAULT1;DECLAREnameVARCHAR(255)DEFAULT'testname';SelectkeyId,name;END;$$DELIMITER;WebUserData.hbm.xmlHibernate.cfg.xml30003600falsetrue11025012

MySQL:将过程参数传递给 EXECUTE USING 语句

这是MySQL5.1。(注意:我知道有更好的方法来完成这个特定的例子,这不是我的真实代码)这是我想做的:创建了以下过程,但是当我调用它时,我得到“ERROR1210(HY000):IncorrectargumentstoEXECUTE”DELIMITER//CREATEPROCEDUREget_users_by_state(INstateCHAR(2))READSSQLDATABEGINSET@mystate=state;SET@sql=CONCAT('SELECT*FROMtest_tableWHEREstate="?"');PREPAREstmtFROM@sql;EXECUTEst

java - 将SQL语句转换为mySQL存储过程

我有一段SQL可以计算出高尔夫球手在排行榜上的排名。我是Spring的新手,我认为我无法使用SpringJDBC执行此操作,因此我认为我需要将其转换为mySQL存储过程。谁能给我一些关于我需要转换什么的指示?简单地放置CREATEPROCEDURE和围绕它的参数列表是行不通的。SET@rank=1,@prev_val=NULL,@prev_rank=NULL;SELECTrankFROM(SELECT@rank:=IF(@prev_val!=winnings,@prev_rank+1,@rank)ASrank,@prev_val:=winningsASwinnings,@prev_ra

php - 将原始查询转换为准备好的语句

假设我有1995年的时尚函数,用于向mysql发送查询。我对我的项目有很多查询,我正在寻找一个能够解析原始查询的函数/类(假设:SELECTfoofrombarwherepizza='hot'LIMIT1)并用php创建一个准备好的语句。你有什么建议吗?这值得么?还是重写所有查询更好?我的项目有424个查询,这只是SELECT谢谢你的帮助 最佳答案 试试这个:functionprepare1995Sql_EXAMPLE($sqlString){#regexpattern$patterns=array();$patterns[0]='